(function($){$(document).ready(function(){let currencySymbol="$";let decimalPlaces=2;function formatString(digits,pattern){let formatted="";let index=0;for(let char of pattern){if(char==="#"){if(indexformatString(digits,"##.###.###/####-##"),".mask-cpf":(digits)=>formatString(digits,"###.###.###-##"),".mask-cep":(digits)=>formatString(digits,"#####-###"),".mask-phus":(digits)=>formatString(digits,"(###) ###-####"),".mask-ph8":(digits)=>formatString(digits,"####-####"),".mask-ddd8":(digits)=>formatString(digits,"(##) ####-####"),".mask-ddd9":(digits)=>formatString(digits,"(##) #####-####"),".mask-dmy":(digits)=>formatString(digits,"##/##/####"),".mask-mdy":(digits)=>formatString(digits,"##/##/####"),".mask-hms":(digits)=>formatString(digits,"##:##:##"),".mask-hm":(digits)=>formatString(digits,"##:##"),".mask-dmyhm":(digits)=>formatString(digits,"##/##/#### ##:##"),".mask-mdyhm":(digits)=>formatString(digits,"##/##/#### ##:##"),".mask-my":(digits)=>formatString(digits,"##/####"),".mask-ccs":(digits)=>formatCreditCard(digits,"space"),".mask-cch":(digits)=>formatCreditCard(digits,"hyphen"),".mask-ccmy":(digits)=>formatString(digits,"##/##"),".mask-ccmyy":(digits)=>formatString(digits,"##/####"),".mask-moneyc":(digits)=>formatMoneyInput(digits,"C","$",""),".mask-moneyd":(digits)=>formatMoneyInput(digits,"D","$",""),".mask-ipv4":(digits)=>formatString(digits,"###.###.###.###"),};Object.entries(formatFunctions).forEach(([selector,formatFunction])=>{$(document).on("input focus",selector,function(event){var input=this;var oldCaret=getCaretPosition(input);if($(input).hasClass("mask-moneyc")||$(input).hasClass("mask-moneyd")){let type=$(input).hasClass("mask-moneyc")?"C":"D";handleMoneyInput(event);return} var rawDigits=input.value.replace(/\D/g,"");var digitIndex=getDigitIndexFromCaret(input.value,oldCaret);var newVal=formatFunction(rawDigits);var newCaret=mapDigitIndexToCaret(newVal,digitIndex);if(newVal!='('){input.value=newVal}else{input.value=""} setCaretPosition(input,newCaret||0);if($(input).hasClass("mask-ccs")||$(input).hasClass("mask-cch")){updateCardLogo(input)}})});function getCaretPosition(input){return input.selectionStart} function getDigitIndexFromCaret(formattedStr,caretPos){var count=0;for(var i=0;i$(input).hasClass(cls.substring(1)));if(matchedClass){var formatted=formatFunctions[matchedClass](newDigits);input.value=formatted;var newCaretPos=mapDigitIndexToCaret(formatted,digitIndex-1);setCaretPosition(input,newCaretPos)}}});function validateInput(selector,errorClass,validationFunction,errorMessage){$(document).on("blur",selector,function(){var input=$(this);if(input.hasClass("hide-fme-mask-input")){return} var val=input.val();var errorElement=input.closest(".elementor-field-group").find("."+errorClass);if(val.length===1&&!/\d/.test(val)){input.val("");errorElement.hide().text("");return} if(val!==""&&!validationFunction(val)){errorElement.text(errorMessage).css("display","flex").hide().fadeIn(200)}else{errorElement.fadeOut(100,function(){$(this).css("display","none")})}});$(document).on("input",selector,function(){var input=$(this);nextbtnVisibility(errorClass,input,validationFunction);var errorElement=input.closest(".elementor-field-group").find("."+errorClass);if(errorElement.is(":visible")){var val=input.val();if(validationFunction(val)){errorElement.fadeOut(100,function(){$(this).css("display","none")})}}})} const validations={".mask-cnpj":{errorClass:"error-cnpj",validate:isValidCNPJ,msg:fmeData.errorMessages["mask-cnpj"],},".mask-cpf":{errorClass:"error-cpf",validate:isValidCPF,msg:fmeData.errorMessages["mask-cpf"],},".mask-cep":{errorClass:"error-cep",validate:isValidCEP,msg:fmeData.errorMessages["mask-cep"],},".mask-phus":{errorClass:"error-phus",validate:isValidPhoneUSA,msg:fmeData.errorMessages["mask-phus"],},".mask-ph8":{errorClass:"error-ph8",validate:isValidPhone8,msg:fmeData.errorMessages["mask-ph8"],},".mask-ddd8":{errorClass:"error-ddd8",validate:isValidPhoneDDD8,msg:fmeData.errorMessages["mask-ddd8"],},".mask-ddd9":{errorClass:"error-ddd9",validate:isValidPhoneDDD9,msg:fmeData.errorMessages["mask-ddd9"],},".mask-dmy":{errorClass:"error-dmy",validate:isValidDateDMY,msg:fmeData.errorMessages["mask-dmy"],},".mask-mdy":{errorClass:"error-mdy",validate:isValidDateMDY,msg:fmeData.errorMessages["mask-mdy"],},".mask-hms":{errorClass:"error-hms",validate:isValidTimeHMS,msg:fmeData.errorMessages["mask-hms"],},".mask-hm":{errorClass:"error-hm",validate:isValidTimeHM,msg:fmeData.errorMessages["mask-hm"],},".mask-dmyhm":{errorClass:"error-dmyhm",validate:isValidDateDMYHM,msg:fmeData.errorMessages["mask-dmyhm"],},".mask-mdyhm":{errorClass:"error-mdyhm",validate:isValidDateMDYHM,msg:fmeData.errorMessages["mask-mdyhm"],},".mask-my":{errorClass:"error-my",validate:isValidDateMY,msg:fmeData.errorMessages["mask-my"],},".mask-ccs":{errorClass:"error-ccs",validate:isValidCreditCard,msg:fmeData.errorMessages["mask-ccs"],},".mask-cch":{errorClass:"error-cch",validate:isValidCreditCard,msg:fmeData.errorMessages["mask-cch"],},".mask-ccmy":{errorClass:"error-ccmy",validate:isValidExpiryMMYY,msg:fmeData.errorMessages["mask-ccmy"],},".mask-ccmyy":{errorClass:"error-ccmyy",validate:isValidExpiryMMYYYY,msg:fmeData.errorMessages["mask-ccmyy"],},".mask-ipv4":{errorClass:"error-ipv4",validate:isValidIPv4,msg:fmeData.errorMessages["mask-ipv4"],},};for(const[selector,{errorClass,validate,msg}]of Object.entries(validations)){validateInput(selector,errorClass,validate,msg)} function isValidPhoneUSA(phoneStr){return/^\(\d{3}\) \d{3}-\d{4}$/.test(phoneStr)} function isValidPhone8(phoneStr){return/^\d{4}-\d{4}$/.test(phoneStr)} function isValidPhoneDDD8(phoneStr){return/^\(\d{2}\) \d{4}-\d{4}$/.test(phoneStr)} function isValidPhoneDDD9(phoneStr){return/^\(\d{2}\) 9\d{4}-\d{4}$/.test(phoneStr)} function isValidDateTime(value,format){let regexPattern;let expectedParts;switch(format){case "DMY":regexPattern=/^(\d{2})\/(\d{2})\/(\d{4})$/;expectedParts=["day","month","year"];break;case "MDY":regexPattern=/^(\d{2})\/(\d{2})\/(\d{4})$/;expectedParts=["month","day","year"];break;case "HMS":regexPattern=/^(\d{2}):(\d{2}):(\d{2})$/;expectedParts=["hour","minute","second"];break;case "HM":regexPattern=/^(\d{2}):(\d{2})$/;expectedParts=["hour","minute"];break;case "DMY-HM":regexPattern=/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2})$/;expectedParts=["day","month","year","hour","minute"];break;case "MDY-HM":regexPattern=/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2})$/;expectedParts=["month","day","year","hour","minute"];break;case "MY":regexPattern=/^(\d{2})\/(\d{4})$/;expectedParts=["month","year"];break;default:return!1} let match=value.match(regexPattern);if(!match)return!1;let parts={};expectedParts.forEach((part,index)=>{parts[part]=parseInt(match[index+1],10)});if(parts.year&&(parts.year<1500||parts.year>3000))return!1;if(parts.month&&(parts.month<1||parts.month>12))return!1;if(parts.day){let daysInMonth=new Date(parts.year,parts.month,0).getDate();if(parts.day<1||parts.day>daysInMonth)return!1} if(parts.hour&&(parts.hour<0||parts.hour>=24))return!1;if(parts.minute&&(parts.minute<0||parts.minute>=60)) return!1;if(parts.second&&(parts.second<0||parts.second>=60)) return!1;return!0} function isValidExpiryDate(value,format){let regexPattern=format==="MM/YY"?/^(\d{2})\/(\d{2})$/:/^(\d{2})\/(\d{4})$/;let match=value.match(regexPattern);if(!match)return!1;let month=parseInt(match[1],10);let year=parseInt(match[2],10);let currentYear=new Date().getFullYear();let currentMonth=new Date().getMonth()+1;if(format==="MM/YY"){year+=2000} if(month<1||month>12)return!1;if(year16)return!1;let sum=0;let shouldDouble=!1;for(let i=cleaned.length-1;i>=0;i--){let digit=parseInt(cleaned.charAt(i),10);if(shouldDouble){digit*=2;if(digit>9)digit-=9} sum+=digit;shouldDouble=!shouldDouble} return sum%10===0} function isValidCNPJ(cnpj){cnpj=cnpj.replace(/\D/g,"");if(cnpj.length!==14)return!1;if(/^(\d)\1+$/.test(cnpj))return!1;let calcCheckDigit=(cnpj,length)=>{let weights=length===12?[5,4,3,2,9,8,7,6,5,4,3,2]:[6,5,4,3,2,9,8,7,6,5,4,3,2];let sum=0;for(let i=0;i{let sum=0;for(let i=0;i{let num=parseInt(octet,10);return num>=0&&num<=255})} let maskErrorArr={};let nextBtnOriginalClicks={};let clickStatus={};let recaptchaEvent={};let submitBtnEvent={};const nextbtnVisibility=(errorClass,input,validationFunction)=>{const closesWidget=input.closest(".elementor-widget-form");const widgetId=closesWidget.data('id');const inuptId=input.attr('id');const fieldStep=input.closest(".elementor-field-type-step");const form=input.closest(".elementor-form");const currectStepFields=form.find(".elementor-form-fields-wrapper.elementor-labels-above").children("div:not(.elementor-hidden)").find('input, textarea, select');const submtBtnTag=form.find("button[type='submit']");if(!closesWidget.length||!fieldStep.length){return} const nextBtn=fieldStep.find(".e-form__buttons__wrapper__button[data-direction='next']");if((nextBtn.length==0&&submtBtnTag.length>0)&&(submtBtnTag.length==0&&nextBtn.length==0)){return} let val=input.val();if(val.length===1&&!/\d/.test(val)){val=''} if(val!==""&&!validationFunction(val)){if(closesWidget.length>0){if(!maskErrorArr[widgetId]){maskErrorArr[widgetId]=[]} if(!maskErrorArr[widgetId].includes(inuptId)){maskErrorArr[widgetId].push(inuptId)}} if(!nextBtnOriginalClicks[widgetId]||!nextBtnOriginalClicks[widgetId].length){if(nextBtn.length>0){const origninalClicks=jQuery._data(nextBtn[0],"events");if(origninalClicks&&(!nextBtnOriginalClicks[widgetId]||!nextBtnOriginalClicks[widgetId].length===0)){nextBtnOriginalClicks[widgetId]=origninalClicks&&origninalClicks.click?origninalClicks.click.map(h=>h.handler):[]}}}}else{if(maskErrorArr[widgetId]&&maskErrorArr[widgetId].includes(inuptId)){maskErrorArr[widgetId]=maskErrorArr[widgetId].filter(item=>item!==inuptId)}} if(maskErrorArr[widgetId]&&maskErrorArr[widgetId].length>0){if(nextBtn.length>0){const origninalClicks=jQuery._data(nextBtn[0],"events");if(origninalClicks&&(!nextBtnOriginalClicks[widgetId]||!nextBtnOriginalClicks[widgetId].length)){nextBtnOriginalClicks[widgetId]=origninalClicks&&origninalClicks.click?origninalClicks.click.map(h=>h.handler):[]} if(nextBtnOriginalClicks[widgetId]&&nextBtnOriginalClicks[widgetId].length>0){nextBtn.off("click")}}}else{if(recaptchaEvent[widgetId]){submtBtnTag.on("click",recaptchaEvent[widgetId])} if(submitBtnEvent[widgetId]){form.on("submit",submitBtnEvent[widgetId])} if(nextBtnOriginalClicks[widgetId]&&nextBtnOriginalClicks[widgetId].length>0){let isfieldsValid=!0 for(let i=0;i0){nextBtn.off("click");nextBtnOriginalClicks[widgetId].forEach(fn=>{nextBtn.one("click",fn)})}}}}} $(document).on("mousedown",".e-form__buttons__wrapper__button[data-direction='next']",function(e){const form=$(this).closest(".elementor-form");const mask_error_div=form.find(".elementor-form-fields-wrapper.elementor-labels-above").children("div:not(.elementor-hidden)").find('div.mask-error');const closesWidget=$(this).closest(".elementor-widget-form");const widgetId=closesWidget.data('id');let mask_error=!1;for(let i=0;i0&&!mask_error){if(nextBtnOriginalClicks[widgetId]&&nextBtnOriginalClicks[widgetId].length>0){$(this).off("click");nextBtnOriginalClicks[widgetId].forEach(fn=>{$(this).one("click",fn)})}}}) $(document).on("click",".e-form__buttons__wrapper__button[data-direction='previous']",function(e){const form=$(this).closest(".elementor-form");const closesWidget=form.closest(".elementor-widget-form");const widgetId=closesWidget.data('id');maskErrorArr[widgetId]=[];const currectStepFields=form.find(".elementor-form-fields-wrapper.elementor-labels-above").children("div:not(.elementor-hidden)") const nextBtn=currectStepFields.find(".e-form__buttons__wrapper__button[data-direction='next']");if(nextBtnOriginalClicks[widgetId]&&nextBtnOriginalClicks[widgetId].length>0){nextBtn.off("click");nextBtnOriginalClicks[widgetId].forEach(fn=>{nextBtn.one("click",fn)})}}) $(document).on("mousedown",".elementor-field-type-submit",function(e){var $submitBtn=$(this);var $form=$submitBtn.closest("form");const closesWidget=$form.closest(".elementor-widget-form");const widgetId=closesWidget.data('id');const currectStepFields=$form.find(".elementor-form-fields-wrapper.elementor-labels-above").children("div:not(.elementor-hidden)") const previousBtn=currectStepFields.find(".e-form__buttons__wrapper__button[data-direction='previous']");const inputMaskFields=currectStepFields.find("input.fme-mask-input");if(previousBtn&&previousBtn.length&&inputMaskFields&&inputMaskFields.length&&maskErrorArr[widgetId]&&maskErrorArr[widgetId].length){var $subBtnTag=$submitBtn.find("button");var $form=$submitBtn.closest("form");const origninalclick=jQuery._data($subBtnTag[0],"events");if(origninalclick&&origninalclick.click){origninalclick.click.forEach((ele)=>{if(ele.handler.toString().trim().includes("onV3FormSubmit")){if(!recaptchaEvent[widgetId]){recaptchaEvent[widgetId]=ele.handler}}})} const origninalSubmit=jQuery._data($form[0],"events");if(origninalSubmit&&origninalSubmit.submit){origninalSubmit.submit.forEach((ele)=>{if(ele.handler.toString().trim().includes("resetForm")){if(!submitBtnEvent[widgetId]){submitBtnEvent[widgetId]=ele.handler}}})} if(submitBtnEvent[widgetId]){$form.off("submit",submitBtnEvent[widgetId])} if(recaptchaEvent[widgetId]){$subBtnTag.off("click",recaptchaEvent[widgetId])}}}) $(document).on("click",".elementor-field-type-submit",function(e){var $submitBtn=$(this);if($submitBtn.find('button').hasClass('cfkef-prevent-submit')||$submitBtn.find('button').hasClass('confirmation-pending')){return} var $form=$submitBtn.closest("form");const closesWidget=$form.closest(".elementor-widget-form");const widgetId=closesWidget.data('id');const submtBtnTag=$form.find("button[type='submit']");if($submitBtn.data("clicked")){e.preventDefault();return} $submitBtn.data("clicked",!0);$form.find("input").trigger("blur");$form[0].classList.add("elementor-form-waiting");setTimeout(()=>{let hasVisibleMaskError=!1;const $errors=$form.find(".mask-error").filter(function(){return $(this).text().trim()!==""&&$(this).css("display")=="flex"});if($errors.length>0){hasVisibleMaskError=!0;const $firstError=$errors.first();$("html, body").animate({scrollTop:$firstError.offset().top-200},300)} const $emptyRequiredMasked=$form.find("input[required]").filter(function(){if(!$(this).hasClass('hide-fme-mask-input')){const val=$(this).val().trim();const isVisible=$(this).css("display")=="flex";return(val===""||/^[\s_\-\(\)\.:/]+$/.test(val))}});if($emptyRequiredMasked.length>0){hasVisibleMaskError=!0;const $firstEmpty=$emptyRequiredMasked.first();$("html, body").animate({scrollTop:$firstEmpty.offset().top-200},300);$firstEmpty.focus()} if(hasVisibleMaskError){$submitBtn.data("clicked",!1);e.preventDefault();return} if(hasVisibleMaskError){$submitBtn.data("clicked",!1);e.preventDefault();return} if(!hasVisibleMaskError){if(recaptchaEvent[widgetId]){submtBtnTag.on("click",recaptchaEvent[widgetId]);submtBtnTag.trigger("click")} if(submitBtnEvent[widgetId]){$form.on("submit",submitBtnEvent[widgetId]);submtBtnTag.trigger("click")} $form[0].classList.remove("elementor-form-waiting");$submitBtn.data("clicked",!1);if(!recaptchaEvent[widgetId]){let error_messages=$form.find('.elementor-form-fields-wrapper').find('.elementor-message');if(error_messages&&error_messages.length==0){$form[0].requestSubmit()}}}},500)})})})(jQuery)